/*
*********************************************************************************************************
*
* 模块名称 :  AD9235数据采集模块【原创】
* 文件名称 :  bsp_gpio_ad9235.h
* 版    本 :  V1.0
* 说    明 :  ad9235 pwm采集方式，直接读取GPIO_IDR寄存器
*
* 修改记录 :
* 版本号     日期       作者      说明
* V1.0       2025-1-21  miaozi    正式发布
*
*
*
*********************************************************************************************************
*/
#ifndef _BSP_GPIO_BSP_AD9235_H_
#define _BSP_GPIO_BSP_AD9235_H_



//  AD9235的双缓冲区
typedef struct  __PACKED
{
  uint16_t    *pBuf;           //  双缓冲区
  uint16_t    buf_size;        //  双缓冲区的大小
}AD9235_BUF_T;

//  AD9235的操作句柄类
typedef struct AD9235_VAR AD9235_VAR_T;
struct __PACKED AD9235_VAR
{
  AD9235_BUF_T *pBuf;                 //  默认缓冲区，可以通过接口重定向

  uint32_t            SmpFrq;         //  采样频率
  TIM_HandleTypeDef  *pTim;           //  时钟源定时器
  uint32_t            TimCh;          //  时钟源定时器通道
  uint32_t            TimFrq;         //  定时器输入频率，不是采样频率
  uint16_t            TimPsc;         //  定时器预分频
  uint16_t            TimArr;         //  定时器重载值
  uint16_t            TimCompare;     //  定时器占空比

  DMA_HandleTypeDef   *pDma;          //  dma句柄
  uint32_t            DmaTri;         //  dma触发器
  uint32_t            DmaTriCh;       //  dma触发通道
  __IO uint32_t       SrcAddress;     //  dma的源地址
  uint32_t            DstAddress;     //  dma的目标地址
  uint32_t            DataLength;     //  dma的数据长度
};
//  AD9235的操作句柄类

extern  AD9235_VAR_T  g_AD9235_Vol;                       //    操作电压AD9235的句柄对象
extern  AD9235_VAR_T  g_AD9235_Cur;                       //    操作电流AD9235的句柄对象

//  AD9235驱动初始化
void  BSP_AD9235_Init(void);
//  重定向DMA传输设置
void  BSP_AD9235_DmaRedirect(AD9235_VAR_T *pAD9235,uint32_t DstAddress,uint32_t DataLength);
//  启动AD9235采样
void  BSP_AD9235_StartRecord(AD9235_VAR_T *pAD9235);
//  关闭AD9235采样
void  BSP_AD9235_StopRecord(AD9235_VAR_T *pAD9235);
//  设置采样频率
void  BSP_AD9235_SetSampleFrq(AD9235_VAR_T *pAD9235,uint32_t Frq);


#endif
/***************************** LinkJoin(END OF FILE) *********************************/
